unit OdontoCadFornecedor;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, CadastroPadrao, Vcl.Menus, Vcl.ComCtrls,
  Vcl.Buttons, Vcl.ExtCtrls, Vcl.Grids, Vcl.DBGrids, Data.DB, Data.Win.ADODB,
  Vcl.StdCtrls, Padroes, Vcl.DBCtrls, OdontoDB, Vcl.Mask, OdontoMaskEdit;

type
  TformCadFornecedor = class(TformCadastro)
    qCadastro: TADOQuery;
    dsCadastro: TDataSource;
    OdontoLabel1: TOdontoLabel;
    OdontoLabel2: TOdontoLabel;
    OdontoLabel3: TOdontoLabel;
    OdontoLabel4: TOdontoLabel;
    OdontoLabel5: TOdontoLabel;
    OdontoLabel6: TOdontoLabel;
    OdontoLabel7: TOdontoLabel;
    OdontoLabel8: TOdontoLabel;
    OdontoLabel9: TOdontoLabel;
    OdontoLabel10: TOdontoLabel;
    OdontoLabel11: TOdontoLabel;
    OdontoLabel12: TOdontoLabel;
    OdontoLabel13: TOdontoLabel;
    OdontoLabel14: TOdontoLabel;
    OdontoLabel15: TOdontoLabel;
    OdontoLabel16: TOdontoLabel;
    dbeCodigo: TDBOdontoEdit;
    dblCidade: TDBLookupOdontoEdit;
    dbeRazao: TDBOdontoEdit;
    dbeFantasia: TDBOdontoEdit;
    dbeEndereco: TDBOdontoEdit;
    dbeNumero: TDBOdontoEdit;
    dbeComplemento: TDBOdontoEdit;
    dbeBairro: TDBOdontoEdit;
    dbeObs: TDBOdontoEdit;
    dbeFone1: TDBOdontoEdit;
    dbeFone2: TDBOdontoEdit;
    dbeCelular: TDBOdontoEdit;
    dbeEmail: TDBOdontoEdit;
    qCadastroFornecedor_Cd: TAutoIncField;
    qCadastroFornecedor_Razao: TStringField;
    qCadastroFornecedor_Fantasia: TStringField;
    qCadastroFornecedor_CNPJ: TStringField;
    qCadastroFornecedor_CPF: TStringField;
    qCadastroFornecedor_Endereco: TStringField;
    qCadastroFornecedor_Complemento: TStringField;
    qCadastroFornecedor_Numero: TStringField;
    qCadastroFornecedor_Bairro: TStringField;
    qCadastroFornecedor_Cidade: TIntegerField;
    qCadastroFornecedor_CEP: TStringField;
    qCadastroFornecedor_Fone1: TStringField;
    qCadastroFornecedor_Fone2: TStringField;
    qCadastroFornecedor_Celular: TStringField;
    qCadastroFornecedor_Email: TStringField;
    qCadastroFornecedor_Obs: TStringField;
    qCadastroFornecedor_Status: TStringField;
    dsGrid: TDataSource;
    qGrid: TADOQuery;
    qCidade: TADOQuery;
    dsCidade: TDataSource;
    qCidadeCidade_Cd: TIntegerField;
    qCidadeCidade_Ds: TStringField;
    qCidadeCidade_UF: TStringField;
    qGridFornecedor_Cd: TIntegerField;
    qGridFornecedor_Razao: TStringField;
    qGridFornecedor_Fantasia: TStringField;
    qGridFornecedor_Fone1: TStringField;
    qGridFornecedor_Fone2: TStringField;
    qGridFornecedor_Status: TStringField;
    omeCPF: TOdontoCPFMaskEdit;
    omeCNPJ: TOdontoCNPJMaskEdit;
    edtCEP: TOdontoCEPMaskEdit;
    DBOdontoCheckBox1: TDBOdontoCheckBox;
    DBOdontoCheckBox2: TDBOdontoCheckBox;
    qCadastroFornecedor_Tipo: TStringField;
    OdontoLabel17: TOdontoLabel;
    OdontoLabel18: TOdontoLabel;
    OdontoLabel19: TOdontoLabel;
    edtCodigo: TOdontoNumero;
    edtRazao: TOdontoEdit;
    edtFantasia: TOdontoEdit;
    procedure FormCreate(Sender: TObject);
    procedure btnPesquisarClick(Sender: TObject);
    procedure btnInclusaoClick(Sender: TObject);
    procedure btnCancelaClick(Sender: TObject);
    procedure btnConfirmaClick(Sender: TObject);
    procedure btnAlteracaoClick(Sender: TObject);
    procedure btnExclusaoClick(Sender: TObject);
  private
  public
  end;

var
  formCadFornecedor: TformCadFornecedor;

implementation

{$R *.dfm}

uses Definicoes, Funcoes;

procedure TformCadFornecedor.btnAlteracaoClick(Sender: TObject);
begin
   qCadastro.Close;
   qCadastro.Parameters.ParamByName('Fornecedor_Cd').Value := qGridFornecedor_Cd.AsInteger;
   qCadastro.Open;
   if qCadastro.IsEmpty then
      Exit;
   qCadastro.Edit;
   inherited;
   Focus(dbeRazao);
end;

procedure TformCadFornecedor.btnCancelaClick(Sender: TObject);
begin
   qCadastro.Cancel;
   inherited;
end;

procedure TformCadFornecedor.btnConfirmaClick(Sender: TObject);
begin
   try
      qCadastroFornecedor_CNPJ.AsString := omeCNPJ.Text;
      qCadastroFornecedor_CPF.AsString := omeCPF.Text;
      qCadastroFornecedor_CEP.AsString := edtCEP.Text;
      qCadastro.Post;
   except
      on e: Exception do begin
         MessageDlg(TratarErro(e.Message), mtInformation, [mbOK], 0);
         Exit;
      end;
   end;
   btnPesquisarClick(Sender);
   inherited;
end;

procedure TformCadFornecedor.btnExclusaoClick(Sender: TObject);
begin
   inherited;
   if Confirma(MSG_EXCLSUSAO_REGISTRO) then begin
      qCadastro.Close;
      qCadastro.Parameters.ParamByName('Fornecedor_Cd').Value := qGridFornecedor_Cd.AsInteger;
      qCadastro.Open;
      try
         qCadastro.Delete;
      except
         MessageDlg(MSG_ERRO_EXCLUIR_REGISTRO, mtInformation, [mbOK], 0);
         Exit;
      end;
      btnPesquisarClick(Sender);
   end;
end;

procedure TformCadFornecedor.btnInclusaoClick(Sender: TObject);
begin
   qCadastro.Close;
   qCadastro.Parameters.ParamByName('Fornecedor_Cd').Value := Null;
   qCadastro.Open;
   inherited;
   Focus(dbeRazao);
   qCadastro.Insert;
   qCadastroFornecedor_Status.AsString := 'A';
   qCadastroFornecedor_Tipo.AsString := 'D';


end;

procedure TformCadFornecedor.btnPesquisarClick(Sender: TObject);
begin
   inherited;
   qGrid.Close;
   qGrid.SQL.Clear;
   qGrid.SQL.Add(' SELECT Fornecedor_Cd, ');
   qGrid.SQL.Add('        Fornecedor_Razao, ');
   qGrid.SQL.Add('        Fornecedor_Fantasia, ');
   qGrid.SQL.Add('        Fornecedor_Fone1, ');
   qGrid.SQL.Add('        Fornecedor_Fone2, ');
   qGrid.SQL.Add('        CASE ');
   qGrid.SQL.Add('          WHEN Fornecedor_Status = ''A'' THEN ''ATIVO'' ');
   qGrid.SQL.Add('          ELSE ''INATIVO'' ');
   qGrid.SQL.Add('        END AS Fornecedor_Status ');
   qGrid.SQL.Add(' FROM Fornecedor ');
   qGrid.SQL.Add(' WHERE Fornecedor_Cd IS NOT NULL ');
   if ( Trim(edtCodigo.Text) <> EmptyStr ) then
      qGrid.SQL.Add(' AND Fornecedor_Cd = ' + edtCodigo.Text );
   if ( Trim(edtRazao.Text) <> EmptyStr ) then
      qGrid.SQL.Add(' AND Fornecedor_Razao LIKE ' + QuotedStr('%'+edtRazao.Text+'%') );
   if ( Trim(edtFantasia.Text) <> EmptyStr ) then
      qGrid.SQL.Add(' AND Fornecedor_Fantasia LIKE ' + QuotedStr('%'+edtFantasia.Text+'%') );
   qGrid.Open;
end;

procedure TformCadFornecedor.FormCreate(Sender: TObject);
begin
   inherited;
   qCidade.Open;
end;

end.
